import type { DescItem } from '#/components/description';

import { DictEnum } from '@vben/constants';

import dayjs from 'dayjs';
import duration from 'dayjs/plugin/duration';
import relativeTime from 'dayjs/plugin/relativeTime';

import { calculateAge } from '#/utils/date/date-util';
import { renderDict } from '#/utils/render';

dayjs.extend(duration);
dayjs.extend(relativeTime);

// function renderTags(list: string[]) {
//   return (
//     <div class="flex flex-row flex-wrap gap-0.5">
//       {list.map((item) => (
//         <Tag key={item}>{item}</Tag>
//       ))}
//     </div>
//   );
// }

export const descSchema: DescItem[] = [
  {
    field: 'customerId',
    label: '客户ID',
  },
  {
    field: 'customerName',
    label: '客户名称',
  },
  {
    field: 'customerSex',
    label: '客户性别',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_USER_SEX) : '-';
    },
  },
  {
    field: 'customerBirth',
    label: '出生日期',
  },
  {
    field: 'customerAge',
    label: '客户年龄',
    render: (_, data) => {
      if (!data.customerBirth) {
        return '-';
      } else {
        return calculateAge(data.customerBirth);
      }
    },
  },
  {
    field: 'birthdayType',
    label: '生日类型',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_BRITH_TYPE) : '-';
    },
  },
  {
    field: 'customerBirthday',
    label: '客户生日',
  },
  {
    field: 'political',
    label: '政治面貌',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_POLITICAL) : '-';
    },
  },
  {
    field: 'nativePlace',
    label: '籍贯',
  },
  {
    field: 'address',
    label: '现住址',
  },
  {
    field: 'hobby',
    label: '兴趣爱好',
  },
  {
    field: 'specially',
    label: '特长',
  },
  {
    field: 'retiredUnit',
    label: '退休单位',
  },
  {
    field: 'title',
    label: '职称',
  },
  {
    field: 'weddingDayType',
    label: '结婚日类型',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_BRITH_TYPE) : '-';
    },
  },
  {
    field: 'weddingDay',
    label: '结婚日',
  },
  {
    field: 'phone',
    label: '电话',
  },
  {
    field: 'isBoss',
    label: '是否做主',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_YES_NO) : '-';
    },
  },
  {
    field: 'pension',
    label: '退休金',
  },
  {
    field: 'medicalHistory',
    label: '既往病史',
  },
  {
    field: 'physicalCondition',
    label: '身体状况',
  },
  {
    field: 'isHealthCare',
    label: '是否养生保健',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_YES_NO) : '-';
    },
  },
  {
    field: 'takingProductsDesc',
    label: '服用产品',
  },
  {
    field: 'whyBuy',
    label: '为什么购买',
  },
  {
    field: 'buyMethod',
    label: '购买渠道',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_BUY_METHOD) : '-';
    },
  },
  {
    field: 'buyer',
    label: '购买人',
  },
  {
    field: 'memberLevel',
    label: '会员等级',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_MEMBER_LEVEL) : '-';
    },
  },
  {
    field: 'customerType',
    label: '客户类型',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_CUSTOMER_TYPE) : '-';
    },
  },
  {
    field: 'customerActivity',
    label: '客户活跃度',
    render(value) {
      return value ? renderDict(value, DictEnum.SYS_CUSTOMER_ACTIVITY) : '-';
    },
  },
  {
    field: 'storeName',
    label: '服务店铺',
  },
  {
    field: 'staffName',
    label: '服务员工',
  },
  {
    field: 'remark',
    label: '备注',
    render(value) {
      return value || '无';
    },
  },
];
